package aplicaciones;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import modelo.Restaurante;
import GUI.pdaGrafica.MenuPrincipal;

/**
 * Esta clase representa la aplicación que va a ejecutarse en las PDAŽs de los camarero
 * (subsistema Gestion de Pedidos, 2º Iteración)
 * 
 * @created 02-may-2007 14:47
 * @version 1.0
 * @author  Enrique Menor Santos
 */
public class PDA {

	/**
	 * La aplicación recibe como parámetro el id del restaurante y crea un objeto de tipo Restaurante
	 * Este objeto se enviará al Menú Principal para ser gestionado desde la capa gráfica.
	 * Ese objeto restaurante se mantendrá en memoria durante toda la vida de la aplicación.
	 * 
	 * @param args: el id del restaurante
	 */
	public static void main(String[] args) {
		
		Restaurante r;
		String ip = "";
		
		File f = new File("./IPServidorRMI.txt");
		FileReader fr = null;
		try {
			fr = new FileReader(f);
		} catch (FileNotFoundException e) {
			System.err.println("Error en apertura de fichero de Servidor RMI. No se ha encontrado el fichero IPServidorRMI.txt");
			System.exit (1);	
		}
		BufferedReader br = new BufferedReader(fr);
		try {
			ip = br.readLine();
		} catch (IOException e) {
			System.err.println("Error en lectura de fichero de Servidor RMI: " + e.getMessage());
			System.exit (2);
		}
		if (ip==null ||ip.equals(""))
		{
			System.err.println("Error en lectura de la IP desde el fichero IPServidorRMI.txt");
			System.exit (3);
		}
		// Si todo va bien construimos el objeto restaurante y le pasamos como parametro la direccion  ip del servidor RMI
		
		if (args.length > 0)
    		r = new Restaurante (Integer.parseInt(args[0]), ip);
    	else
        //1 es el código del restaurante por defecto en la base de datos
    		r = new Restaurante (1, ip);
		
    	//comprobamos que hemos obtenido el restaurante correctamente; sino no se ejecuta la aplicación
    	if (r!= null && r.getId()!=-1)
    	{
    		MenuPrincipal mp = new MenuPrincipal(r);
    		mp.setVisible(true);						//inicializa la GUI
    		mp.setAlwaysOnTop(true);
    	}
    	else
    	{
    		System.err.println("El restaurante no ha podido obtenerse de la BD, por lo que no se ha iniciado la aplicación PDA:" + r);
    		System.exit(-1);
    	}
	}
	}
